package com.lframework.xingyun.basedata.service.product;

import com.lframework.starter.web.core.service.BaseMpService;
import com.lframework.xingyun.basedata.entity.ProductAssistantUnit;
import com.lframework.xingyun.basedata.vo.product.unit.ProductAssistantUnitVo;
import com.lframework.xingyun.basedata.vo.product.unit.QueryProductAssistantUnitVo;

import java.math.BigDecimal;
import java.util.List;

/**
 * 商品辅助单位表 Service
 */
public interface ProductAssistantUnitService extends BaseMpService<ProductAssistantUnit> {

    /**
     * 查询列表
     * @param vo
     * @return
     */
    List<ProductAssistantUnit> query(QueryProductAssistantUnitVo vo);

    /**
     * 根据ID查询
     * @param id
     * @return
     */
    ProductAssistantUnit findById(String id);

    /**
     *
     * @param productId
     * @return
     */
    List<ProductAssistantUnit> queryByProductId(String productId);

    /**
     *
     * @param productId
     * @param vo
     */
    void save(String productId, List<ProductAssistantUnitVo> vo);

    List<ProductAssistantUnit> queryByCodeAndSkuCode(String code, String skuCode);

    /**
     * 计算拆分数量
     * @param productId
     * @param unitId
     * @param targetUnitId
     * @param num
     * @return
     */
    Integer calcDecomposeNum(String productId, String unitId, String targetUnitId, BigDecimal num);

    /**
     * 计算商品某单位的采购价
     * @param productId
     * @param unitId
     * @return
     */
    BigDecimal calcUnitPurchasePrice(String productId, String unitId);

}

